package com.school.sports.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.school.sports.entity.CertificateTemplate;

import java.util.List;

/**
 * 证书模板服务接口
 */
public interface CertificateTemplateService extends IService<CertificateTemplate> {

    /**
     * 分页查询证书模板
     * @param currentPage 当前页码
     * @param pageSize 每页显示数量
     * @param template 查询条件
     * @return 分页结果
     */
    IPage<CertificateTemplate> getPage(int currentPage, int pageSize, CertificateTemplate template);

    /**
     * 根据模板类型查询模板列表
     * @param templateType 模板类型
     * @return 模板列表
     */
    List<CertificateTemplate> getTemplatesByType(String templateType);

    /**
     * 根据模板类型获取默认模板
     * @param templateType 模板类型
     * @return 默认模板
     */
    CertificateTemplate getDefaultTemplateByType(String templateType);

    /**
     * 创建证书模板
     * @param template 模板信息
     * @param createUserId 创建用户ID
     * @return 创建结果
     */
    boolean createTemplate(CertificateTemplate template, Long createUserId);

    /**
     * 更新证书模板
     * @param template 模板信息
     * @return 更新结果
     */
    boolean updateTemplate(CertificateTemplate template);

    /**
     * 设置为默认模板
     * @param templateId 模板ID
     * @param templateType 模板类型
     * @return 设置结果
     */
    boolean setAsDefault(Long templateId, String templateType);

    /**
     * 获取活跃模板列表
     * @return 活跃模板列表
     */
    List<CertificateTemplate> getActiveTemplates();

    /**
     * 启用/禁用模板
     * @param templateId 模板ID
     * @param status 模板状态
     * @return 操作结果
     */
    boolean updateTemplateStatus(Long templateId, String status);

    /**
     * 删除模板（逻辑删除）
     * @param templateId 模板ID
     * @return 删除结果
     */
    boolean deleteTemplate(Long templateId);
}